package fr.afcepf.atod.projet.tests;

import java.util.List;

import junit.framework.TestCase;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import fr.afcepf.atod.projet.entities.Cour;
import fr.afcepf.atod.projet.services.interfaces.IServiceCours;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/springConfig.xml" })
public class TestServiceCours extends TestCase {

	@Autowired
	private IServiceCours serviceCours;

	@Test
	public void testCreateCours() {
		Cour c = new Cour();
		c.setIntitule("Java");
		c.setUrl("www.monserveur.fr/java");
		c.setCursusBean(null);
		TestCase.assertTrue(serviceCours.ajouter(c));
	}

	@Test
	public void testUpdateCours() {
		Cour c = new Cour();
		c.setIntitule("Java");
		c.setUrl("www.monserveur.fr/java");
		c.setCursusBean(null);

		Cour c2 = serviceCours.rechercherCours(c).get(0);

		c2.setIntitule("J2EE");

		serviceCours.editer(c2);

		Cour c3 = serviceCours.rechercherCours(c2).get(0);

		TestCase.assertNotNull(c3);
		TestCase.assertTrue(c3.getIntitule().equals("J2EE"));
	}

	@Test
	public void testRemoveCours() {
		Cour c = new Cour();
		c.setIntitule("blabla");
		c.setUrl("www.monserveur.fr/blabla");
		c.setCursusBean(null);
		
		serviceCours.ajouter(c);

		List<Cour> listeCours = serviceCours.rechercherCours(c);
		TestCase.assertTrue(listeCours.size() > 0);

		if (listeCours.size() > 0) {
			serviceCours.retirer(listeCours.get(0).getId());
			List<Cour> result = serviceCours.rechercherCours(c);
			TestCase.assertTrue(result.size() == 0);
		}
	}
}
